/**
 * 最大连续1的个数 III
 * 给定一个二进制数组 nums 和一个整数 k，如果可以翻转最多 k 个 0 ，则返回 数组中连续 1 的最大个数 。
 * 输入：nums = [1,1,1,0,0,0,1,1,1,1,0], K = 2
 * 输出：6
 * 解释：[1,1,1,0,0,1,1,1,1,1,1]
 * 粗体数字从 0 翻转到 1，最长的子数组长度为 6。
 */
public class demo21 {
    public int longestOnes(int[] nums, int k) {
        int len = 0;
        for(int left = 0,right = 0,zero = 0;right < nums.length;right++){
            if(nums[right] == 0)  zero++;
            while(zero > 0)
                if(nums[left++] == 0) zero--;
            len =Math.max(len, right -left+1);
        }
        return len;
    }
}
